System and method for managing multiple applications in a display-limited environment

ABSTRACT

Embodiments are directed towards providing a system that provides an environment in which multiple user applications can be executed in the background of a vehicle head unit without direct interaction by a user of the head unit. A category-management application is configured to communicate with the user applications. The category-management application receives a request for content. The category-management application provides a request to one or more of the user applications to cause the user applications to execute as background processes to fulfill the request. The category-management application receives responses from the user applications. The category-management application selects and presents content associated with the fulfilled request to the user.

TECHNICAL FIELD

The present disclosure relates generally to the management ofapplications executing on a vehicle head unit and their ability tooutput visual content on a display of the head unit.

BACKGROUND Description of the Related Art

Automobiles are becoming more and more user friendly and interactive.Many new cars are now manufactured with a user interface, called a headunit, which a user can use to control various aspects of the automobileand access a variety of content or applications. For example, the usercan use the head unit to change radio stations, change the temperatureof the automobile cabin, access maps and global positioning systems,receive media streams via the Internet, access various Internet-basedservices, or access or control other accessories of the automobile. Thehead unit can also provide various types of information or content tothe user, such as when the automobile is due for an oil change or when atire rotation should be performed, to name a few.

To view most of this information, users navigate through multiplescreens and options to access different accessory information orapplications. This mode of interaction is similar in many respects tothat of smartphones, where one may have screen after screen along withmultiple folders of apps. This type of user interaction, however, can bea great distraction, especially to the driver. Not only can suchdistractions be a safety issue, many jurisdictions are now starting tolimit the amount and type of content or interactions that users canperform on a head unit. The phone-like app-as-an-icon model does notalways lend itself well to the in-vehicle experience. It is with respectto these and other considerations that the embodiments described hereinhave been made.

BRIEF SUMMARY

Briefly stated, embodiments are directed towards a system that providesan environment in which multiple user applications, which manifestthemselves as services, can be executed in the background of a vehiclehead unit without direct screen interaction with the user applicationsby a user of the head unit. That is, certain applications may be runwithout a user selecting a dedicated application icon and without theapplication taking over the display when run. A category-managementapplication on the head unit is configured to communicate with aplurality of user applications that are stored on the head unit orstored on a mobile device of the user. The category-managementapplication receives a request to interact with one or more of the userapplications. This request may be directly from a user, from the uservia a navigation application, from the user applications themselves,from other user or system applications, or from an accessory of thevehicle. The category-management application provides the request to oneor more user applications to cause the user applications to execute inthe background of the head unit to fulfill the request. Thecategory-management application receives response information from eachuser application that fulfills the request and presents associatedcontent to the user. The presentation of the content may include adisplay of visual content, such as via a map displayed by the navigationapplication, or an audio output, such as via a speaker in the vehicle.

The environment provided by the system described herein reducesdistractions caused by a user interacting with the head unit to accessuser applications, while also increasing the amount of content that canbe presented to the user. It also reduces the complexity of theinterface by not having to present the user with a distinct icon andapplication for each service. For example, if a user likes to get gas atparticular gas stations because they receive loyalty points from thosegas stations, the user can perform a one-time download of the userapplications for each gas station brand they care about. Theseapplications are generally brand-specific services that are accessedfrom a generic “fuel” application that manages the category of fuelservices. When the user decides to get gas, the user can simply activatea gas button on the head unit. Embodiments described herein cause acategory-management application to access each of the user's user gasapplications to get a location of the nearest gas station associatedwith that application. The navigation application can then be utilizedto display a map with icons representative of the locations of thosestations. As another example, a geolocation search can automaticallyfind and launch an application based on a triggered event, such as“ignition off.”

Therefore, instead of having the user manually select and interact witheach gas application to obtain a nearest location and then rememberwhere that gas station is located as the user searches through allapplications, embodiments described herein provide an automated systemfor obtaining information from user applications without having the userinteract with those applications individually. Accordingly, the user isnot distracted with searching multiple user applications and the user ispresented with additional content from each user application.Embodiments described herein also utilize the leverage of theinformation obtainable by the user applications to augment the contentpresented by the head unit, which reduces the need to update the headunit with new content.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments are described with referenceto the following drawings. In the drawings, like reference numeralsrefer to like parts throughout the various figures unless otherwisespecified.

For a better understanding, reference will be made to the followingDetailed Description, which is to be read in association with theaccompanying drawings:

FIG. 1 illustrates a context diagram of a vehicle environment thatutilizes a head unit to present content to a user in accordance withembodiments described herein;

FIG. 2 shows a use case example of a head unit's utilization ofcategory-management applications and user applications in accordancewith embodiments described herein;

FIG. 3 illustrates a logical flow diagram generally showing oneembodiment of an overview process for utilizing a category-managementapplication to interact with a user application to present content to auser of a vehicle in accordance with embodiments described herein;

FIG. 4 illustrates a logical flow diagram generally showing oneembodiment of an alternative process for utilizing multiplecategory-management applications to interact with multiple userapplications to present content to a user in accordance with embodimentsdescribed herein; and

FIG. 5 shows a system diagram that describes one implementation ofcomputing systems for implementing embodiments described herein.

DETAILED DESCRIPTION

The following description, along with the accompanying drawings, setsforth certain specific details in order to provide a thoroughunderstanding of various disclosed embodiments. However, one skilled inthe relevant art will recognize that the disclosed embodiments may bepracticed in various combinations, without one or more of these specificdetails, or with other methods, components, devices, materials, etc. Inother instances, well-known structures or components that are associatedwith the environment of the present disclosure, including but notlimited to the communication systems and networks and the vehicleenvironment, have not been shown or described in order to avoidunnecessarily obscuring descriptions of the embodiments. Additionally,the various embodiments may be methods, systems, media, or devices.Accordingly, the various embodiments may be entirely hardwareembodiments, entirely software embodiments, or embodiments combiningsoftware and hardware aspects.

Throughout the specification, claims, and drawings, the following termstake the meaning explicitly associated herein, unless the contextclearly dictates otherwise. The term “herein” refers to thespecification, claims, and drawings associated with the currentapplication. The phrases “in one embodiment,” “in another embodiment,”“in various embodiments,” “in some embodiments,” “in other embodiments,”and other variations thereof refer to one or more features, structures,functions, limitations, or characteristics of the present disclosure,and are not limited to the same or different embodiments unless thecontext clearly dictates otherwise. As used herein, the term “or” is aninclusive “or” operator and is equivalent to the phrases “A or B, orboth” or “A or B or C, or any combination thereof,” and lists withadditional elements are similarly treated. The term “based on” is notexclusive and allows for being based on additional features, functions,aspects, or limitations not described, unless the context clearlydictates otherwise. In addition, throughout the specification, themeaning of “a,” “an,” and “the” include singular and plural references.

The term “user” is defined as a person or occupant that is in orotherwise being transported by a vehicle. The user may be the driver ora passenger of the vehicle. The term “vehicle” is defined as a deviceused to transport people or goods (or both), and examples includeautomobiles, buses, aircraft, boats, or trains. A “processor” is definedas a component with at least some circuitry or other hardware and thatcan execute instructions. The term “head unit” is defined as a componentwith at least some circuitry that is part of a vehicle and presentscontent to a user (as defined above). The term “present” is defined asto bring or introduce to the presence of a user through some sensoryinteraction.

The term “content” is defined as information that can be presented to auser of the vehicle. Content may include visual content, audio content,tactile content, or some combination thereof. Visual content can includetext, graphics, symbols, video, or other information that is displayedto a user. Audio content can include songs, vocals, music, chimes, orother types of sounds. Tactile content can include vibrations, pulses,or other types of touch-based sensations provided via a hapticinterface. Generalized types of content can include advertisements,sports scores or information, logos, directions, restaurant menus,prices, hours of operation, coupons, descriptive information, emergencyinstructions, etc.

FIG. 1 illustrates a context diagram of a vehicle environment thatutilizes a head unit to present content to a user in accordance withembodiments described herein. System 100 includes a vehicle 102 that hasa head unit 104 and one or more accessories 108 a-108 c. The vehicle 102is virtually any means of transportation that includes a computingdevice and an output interface to provide content to a user of thevehicle 102. In the illustrative examples described herein, thecomputing device of the vehicle is the head unit 104, although othertypes of computing devices may be employed.

The head unit 104 is a computing device that provides content,interactive controls, user interfaces, or other information to users ofthe vehicle 102. In various embodiments, the head unit 104 utilizes oneor more input/output interfaces for user interactions, which may beintegrated into the head unit 104 (e.g., input/output interfaces 116) orexternal to the head unit 104 (e.g., other input/output interfaces 126).In some embodiments, the input/output interfaces 116 or a portionthereof may be part of or embedded within the head unit 104. In otherembodiments, the other input/output interfaces 126 or a portion thereofmay be separate from or independent of the head unit 104. In variousembodiments, the head unit 104 may utilize some combination of theinput/output interfaces 116 and the input/output interfaces 126. Forexample, the head unit 104 may include a built-in display device tooutput visual content and utilize a separate speaker that is external tothe head unit 104 to output audio content. The head-unit-integratedinput/output interfaces 116 and the other external input/outputinterfaces 126 may be collectively referred to as input/outputinterfaces 116, 126.

The input/output interfaces 116, 126 are configured to receive inputfrom a user of the vehicle 102 or to output content to a user of thevehicle 102. The input/output interfaces 116, 126 may include one ormore output interfaces, which may include a visual interface, such as adisplay device; an audio output interface, such as a speaker; a hapticinterface, such as a tactile output device; or a combination thereof.Therefore, the input/output interfaces 116, 126 may include one or moreoutput interfaces configured to output visual content, audio content,tactile content, or some combination thereof.

The input/output interfaces 116, 126 may also include one or more inputinterfaces, which may include input buttons, a touchscreen, amicrophone, or other input interfaces. Therefore, the input/outputinterfaces 116, 126 may include one or more input interfaces configuredto receive visual, audio, physical input commands, or some combinationthereof. Embodiments described herein regarding the head unit 104 asreceiving input or providing output may be performed by an internal orintegrated input/output interface 116 or other external input/outputinterfaces 126, or some combination thereof. As an illustrative example,the head unit 104 may provide a navigation interface, audio and radiocontrols, environmental controls, vehicle performance or maintenanceinformation, or other types of content.

An accessory 108 a-108 c can be any device or process that providesinformation or data directly or indirectly (such as via the head unit104) to the user. Examples include the following: gas-level gauge,speedometer, odometer, oil-pressure gauge, temperature gauge,tire-pressure gauge, GPS device, ignition-status indicator, gear-shiftmechanics or electronics indicating a gear state or change of state,seat-belt-status indicator, seat-weight sensors, clock, or other vehiclesensor that provides information to a user. Additional information onthe accessories 108 a-108 c will be presented below.

In various embodiments described herein, the head unit 104 provides anenvironment in which category-management applications access and manageuser applications such that the category-management applications presentcontent to a user of the head unit 104 without the user interactingdirectly with the user applications. As an example, the content may bepresented to the user through an interactive element, like a navigationapplication. These category-management applications may be applicationsthat execute to coordinate requests and information between the user(via the interactive element) and the user applications. The userapplications may be individual applications selected or downloaded bythe user or pre-installed applications. Accordingly, user applicationsmay obtain or provide content to a user. Moreover, user applications maybe self-sufficient and not have to interact with a remote server orservice or alternatively, the user application may exchange content witha remote server. In some embodiments, user applications may befull-service applications that utilize user input to obtain content,present content to the user, or provide content to a remote server. Inother embodiments, user applications may be background applications orprocesses that are not under the direct control of an interactive user.

For example, the head unit 104 may have stored thereon a navigationapplication and one or more category-management applications, such as agas application or a food application. The head unit 104 also has storedthereon a plurality of user applications, which, for illustrativepurposes, may include examples such as Gas_Station_ABC, Gas_To_Go,SuperStoreGas, Burger_Joint, and Taco_Today. Each of these userapplications provides many different functions, from enabling a user toorder food to providing a daily coupon to the user. The gas applicationaccesses and interacts with Gas_Station_ABC, Gas_To_Go, andSuperStoreGas, and the food application accesses and interacts withBurger_Joint and Taco_Today.

The user applications can provide information or content to thecategory-management applications unrequested or in response to a requestfrom the category-management application. The category-managementapplication then determines if and how to present the information orcontent to the user of the head unit 104. Continuing the example, thegas application can obtain a current location, current route (e.g., afull route to a destination or a partial route for a select amount oftime or distance), or destination of the vehicle 102, such as from thenavigation application. The gas application then provides this currentlocation information to each user application and requests a neareststore location associated with that user application. In response, oneor more of Gas_Station_ABC, Gas_To_Go, and SuperStoreGas provides thegas application with coordinates of its nearest corresponding gasstation with respect to the current location of the vehicle 102. The gascategory-management application then provides the coordinates to thenavigation application to display an icon representative of the locationof one or more of the nearest gas stations on a map. In someembodiments, the gas user applications may also present other content tothe gas category-management application, such as a company logo, prices,coupons, or other content.

The navigation application responds to the gas category-managementapplication by presenting the location of the nearest gas stations tothe user of the vehicle 102 via the head unit 104. In this way, the userof the head unit 104 can see the closest gas stations associated withthe gas user applications without having to open each gas userapplication to separately request a nearest location. In many instances,user applications are updated from time to time to include morefunctionality, include additional store locations, etc. The interactionbetween the category-management applications and the user applications,described herein, allows for the head unit 104 to present updatedinformation from the user applications.

As another example, an accessory 108 a-108 c or some process, like thenavigation application, may monitor one or more parameters or variables,such as the vehicle's location or fuel level, and if certain conditionsare met, may send messages to user applications related to theparameters or variables or surface the information to the user. In oneexample, a background process may periodically check the fuel level.When it's below a threshold value and the navigation application detectsthere's a gas station close by, the head unit 104 may present that gasstation interface to the user. In another example, a user may haveordered food from a quick-service restaurant. A background process(possibly the same restaurant user application or a generic trackinguser application) can send a message to the restaurant user applicationwhen the vehicle is within a certain distance from the restaurant. Therestaurant user application can then forward the message to therestaurant's web-service interface using its own proprietary mechanisms.This step can allow the restaurant to start preparing the food inanticipation of the arrival of the user. In some embodiments, thegeneric tracking user application could be a generic in-vehicle userapplication that allows arbitrary applications to use asubscribe-publish model to request alerts when the vehicle is in acertain area.

Although the previous examples describe the user applications as beingstored on the head unit 104, embodiments are not so limited. In someembodiments, one or more of the user applications may be stored on amobile device 114 that is separate from the head unit 104. In thisexample, the category-management applications executing on the head unit104 communicate with the mobile device 114 to obtain content orinformation for presentation to the user via the input/output interfaces116, 126. The user applications may also be completely cloud hosted,running on one or more remote servers 124. In this case, thecategory-management applications are configured to be aware of them andhow to communicate with them, as necessary. In this instantiation, theuser applications operate much like web services. Category-managementapplications can subscribe to asynchronous notifications of events orsend requests and receive responses via a communication network toexchange data with the user applications.

In various embodiments, the head unit 104 may be configured tocommunicate with other computing devices, such as mobile device 114 orremote server 124. For example, the head unit 104 may interact with userapplications executing on the mobile device 114 via mobile devicecommunication network 120. Similarly, the head unit 104 may communicatewith remote server 124 via communication network 122 to obtain contentor other information, such as in response to a request from a userapplication, or interact with cloud-based user applications, as notedearlier. In at least one embodiment, the mobile device 114 may act as anintermediate device between the head unit 104 and the remote server 124.

The remote server 124 is any computing device, such as a servercomputer, cloud resources, a smartphone or other mobile device, or othercomputing device, which is remote to the vehicle 102 and can providecontent or other information to the head unit 104 or the mobile device114. Although the remote server 124 is illustrated as a single device,embodiments are not so limited. Rather, the remote server 124 may be oneor more computer devices, including those that collectively performfunctions.

The mobile device 114 includes any device capable of communicating witha head unit 104 of the vehicle 102 or remote server 124. The mobiledevice 114 is configured and structured to send and receive information,content, or controls to and from the head unit 104 or the remote server124. Examples of the mobile device 114 include laptop computers, smartphones, tablet computers, wearable computing devices, other smartdevices, or other handheld computing devices.

In some embodiments, the remote server 124, the head unit 104, and themobile device 114 communicate with each other via a communicationnetwork 122. The communication network 122 is configured to couplevarious computing devices to transmit data from one or more devices toone or more other devices. Communication network 122 includes variouswireless networks that may be employed using various forms ofcommunication technologies and topologies, such as cellular networks,mesh networks, or the like.

In various embodiments, the head unit 104 communicates with the mobiledevice 114 via a mobile device communication network 120. The mobiledevice communication network 120 is configured to couple the mobiledevice 114 with the head unit 104 to transmit content/data between themobile device 114 and the head unit 104. The information communicatedbetween devices may include current accessory status or data, vehiclestatus information, requests to access accessory data, requests tocontrol or modify an accessory, video data, voice data, image data, textdata, or other types of content, data, or information. The communicationnetwork 120 may include a variety of short-range wireless communicationnetworks, such as personal area networks utilizing classic Bluetooth orBluetooth Low Energy protocols, Wi-Fi, USB, an IR optical network, ornetwork 120, to enable communication between the mobile device 114 andthe head unit 104. The communication network 120 may also be implementedusing Internet connectivity over wide-area cellular networks (such as 4Gand 5G networks).

In various embodiments, the user may interact with the head unit 104 viathe mobile device 114 such that the mobile device 114 acts as a virtualhead unit. In this way, user input provided to the head unit 104 may bereceived from the user via the mobile device 114 and transmitted fromthe mobile device 114 to the head unit 104 for processing by the headunit 104. Conversely, content to be presented to the user may beprovided to the mobile device 114 from the head unit 104 and displayedor otherwise output to the user from the mobile device 114. In someother embodiments, the mobile device 114 may perform the functionalityof head unit 104 or may project one or more of its applications to thehead unit 104.

The mobile device communication network 120, the communication network122, and the accessory communication network 106 may be separatecommunication networks, as illustrated, or some of them may form thesame communication network or share network components.

The head unit 104 may also be configured to access or receiveinformation or control use of the one or more accessories 108 a-108 c.The accessories 108 a-108 c include virtually any vehicle utility ordevice that provides information or data to the user, including datareceived from core components of the vehicle 102 via the vehicle'sController Area Network (CAN bus). Accessories 108 a-108 c may alsoinclude applications executing on the head unit 104 that provideinformation to the user or have two-way interactions with the user.Examples of these accessories include navigation, audio and radiocontrols, television or music applications, environmental controlapplications, vehicle performance or maintenance applications, or otherapplications.

Accessories 108 a-108 c may also receive information from other sources.For example, in some embodiments, the accessories 108 a-108 c maycollect “derived accessory data” from internal-facing or external-facingcameras or other sensors. Derived accessory data is information about anenvironment associated with the vehicle that can provide additionaldetails or aspects of the operation of the vehicle, as described herein.For example, images from a camera on the vehicle may be analyzed todetermine which user is in the vehicle, which user is operating thevehicle, where the driver or other user is looking (e.g., whether theyare talking to a passenger), whether there are pedestrians nearby,whether there are billboards or store signs next to the road or vehicle,etc.

In some embodiments, the accessories 108 a-108 c may also include anyvehicle utility or device that is controllable by a user. Examples ofthese accessories include adjustable seats, sun roof, side mirrors,rear-view mirror, air conditioner, power windows, or other controllablefeatures of the vehicle 102.

It should be noted that some accessories may only output data, someaccessories may only receive control signals to manipulate theaccessory, and some accessories may input and output data. For example,a speedometer may only output the current speed of the vehicle; a powerwindow may only receive control signals to move the window up or downbut not return any information to the head unit; and the navigationsystem may receive a request for a destination and also return asuggested travel route to the destination. It should be further notedthat these examples are non-exhaustive and other types of accessoriesmay also be employed.

The head unit 104 can communicate with the accessories 108 a-108 c viaan accessory communication network 106. The accessory communicationnetwork 106 is configured to couple the accessories 108 a-108 c with thehead unit 104 to transmit content/data between the accessories 108 a-108c and the head unit 104. The information communicated between devicesmay include current accessory status or data, accessory control data,video data, voice data, image data, text data, or other types ofcontent, data, or information. The accessory communication network 106may include one or more physical networks; one or more wirelesscommunication networks; one or more application program interfaces; orone or more other networks capable of transmitting data from oneaccessory to another, from an accessory to the head unit 104, or fromthe head unit to an accessory; or some combination thereof depending onthe types of accessories communicating with the head unit 104. Forexample, the accessory communication network 106 may include anautomotive body communication network, such as a wired controller areanetwork, short-range wireless communication network, such as personalarea networks utilizing Bluetooth Low Energy protocols, or any othertype of network.

In some other embodiments, the head unit 104 may act as an intermediatedevice that facilitates communication between the mobile device 114 andthe accessories 108 a-108 c. In this way, the head unit 104 can act as agateway between the mobile device 114 and the accessories 108 a-108 c toprovide authentication and authorization for permitting or restrictingthe control of accessories 108 a-108 c and the transfer of accessoryinformation, which can enable a user to access information from orcontrol accessories 108 a-108 c via mobile device 114.

FIG. 2 shows a use case example of a head unit's utilization ofcategory-management applications and user applications in accordancewith embodiments described here. Example 200 includes a head unit 104and a remote server 124, and optionally a mobile device 114, similar towhat is described above in conjunction with FIG. 1.

The head unit 104 has stored thereon a navigation application 202, aplurality of category-management applications 204, and a plurality ofuser applications 210. In various embodiments, the navigationapplication 202, the category-management applications 204, or the userapplications 210 may be considered as accessories of the vehicle.Although not illustrated, the head unit may also store systemapplications, such as a camera application, other map applications,safety applications, etc., that may be built into the head unit by amanufacturer. In another arrangement, one or more of the navigationapplication 202, category-management applications 204, user applications210, or system applications may be installed or stored on other devicesand selectively presented on the head unit, such as for interaction witha user.

The navigation application 202 is an application that obtains GPS orother location data and outputs visual or audible content to a user ofthe head unit 104, such as a map or directions. Accordingly, thenavigation application 202 can display a map with the vehicle's currentlocation and optionally, a route to a destination. The navigationapplication 202 may also display other content to the user. For example,the navigation application 202 may overlay and display iconsrepresentative of the location of parks, stores, restaurants, etc. orexternal conditions, such as weather or traffic. In other embodiments,the navigation application 202 may also display other content receivedfrom the category-management applications 204, such as coupons,advertisements, alerts, or other types of content. This additionalcontent may be displayed to a user via a banner, window, or scrollingtext or presented through some other audiovisual interface.

The category-management applications 204 are applications that interactwith one or more related user applications 210, as well as thenavigation application 202. In general, a category-managementapplication 204 serves as an interface for its corresponding userapplications 210 so that the user applications 210 can execute in thebackground without requiring direct user interaction. This processenables the category-management application 204 to aggregate informationfrom its corresponding user applications 210 for efficient presentationto a user. In this example, the category-management applications 204include a gas application 204 a and a food application 204 b.Embodiments, however, are not so limited and other types ofcategory-management applications 204 may be used, such as those relatedto financial institutions, retail establishments, parks and recreation,repair shops, games, safety, etc.

The user applications 210 are applications for a particular store,service, product, business, shop, station, park, game, etc. Theseapplications are typically considered stand-alone applications in thatthey can be accessed directly by a user via a graphical user interfaceand typically execute in the foreground of the computing system. Inembodiments described herein, however, the user applications 210 executein the background without direct interaction with the user.

Rather, the user interacts with the head unit 104 via the navigationapplication 202, or optionally the category-management applications 204or even other interfaces 220, which reduces the interactions between theuser and the head unit 104 and subsequently reduces the distractions tothe user. Therefore, the category-management applications 204 and thenavigation application 202 work together act as an intermediary betweenthe user and the user applications to present content from or for a userapplication 210 without the user directly interacting with the userapplications 210. As a result, the user is not distracted by scrollingthrough many different windows or visual interfaces to access a userapplication 210 or directly interacting with the user application 210itself.

Alternatively, the category-management applications 204 may provide theuser applications 210 a display area that can be used directly for userinteraction. In this mode, however, the head unit 104 presents the lookand feel of using a single application, and the user is unaware of theuser applications 210 that are effectively service modules to thecategory-management application 204. For example, the gas application204 a may show the user the look and feel of the gas_station_ABCapplication 210 a, but the actual payment interface may be provided bythe gas_station_ABC application 210 a itself. In either case, the useris unaware of the plurality of user applications 210 or does not selectthem directly.

In one embodiment, the user application 210 that is presented to theuser through the category-management application 204 may depend on oneor more factors, like proximity to the vehicle or prior user activity.For example, the gas_station_ABC application 210 a may be selected asthe service module to be presented to the user through the gasapplication 204 a if a gas station associated with this application 210a is closer to the vehicle than a different gas station. As anotherexample, the selection of a user application 210 under this arrangementmay stem from the user's repeated visits to an establishment associatedwith that user application 210. In this case, various machine-learning(“ML”) models, including those onboard or remote to the vehicle mayassist in this selection. Factors other than proximity or previous useractions—such as type of vehicle, vehicle parameters, settings, orvalues, or events at the establishments associated with the userapplications 210—may drive the selection of a user application 210 forthis form of presentation.

No matter how the category-management applications 204 minimizeinteractions between a user and the head unit 104, one or more userapplications 210 may be assigned or linked to one or morecategory-management applications 204 as part of that process. Thisconnection may be done automatically or manually (or both). For example,if a gas user application 210 is installed, the head unit 104 (or someother device) may automatically assign the gas user application 210 to agas category-management application 204. A user may also perform thisstep manually and can override any automatic linking done by the system.In addition, a user application 210 may be assigned to multiplecategory-management applications 204, such as if the entity related tothat user application offers goods or services that are associated withthe themes of two separate category-management applications 204.

The user applications 210 can provide a variety of content (includinginformation) for presentation to a user of the head unit 104, such asnearest store locations, sale items, coupons, advertisements, contactinformation, hours of operation, prices, etc. In this example, the userapplications 210 include a Gas_Station_ABC application 210 a, aGas_To_Go application 210 b, a SuperStoreGas application 210 c, aBurger_Joint application 210 d, and a Taco_Today application 210 e.These examples are for illustrative purposes and are not to be construedas limiting.

In various embodiments, the user applications 210 communicate with oneor more remote servers 124 to obtain content. For example, theGas_Station_ABC application 210 a may communicate with a correspondingremote server 124 to obtain updated information on the locations of theGas_Station_ABC service stations or a nearest service station given somelocation information (e.g., current location of the vehicle, adestination of the vehicle, a home town of an owner of the vehicle,etc.). In some embodiments, the user applications 210 may communicatewith the same remote server 124, but in other embodiments, the userapplications 210 communicate with their own separate respective remoteservers 124.

The user applications 210 communicate with the category-managementapplications 204 via links 214 a-214 f, which represent interprocesscommunications. For example, the Gas_Station_ABC application 210 a, theGas_To_Go application 210 b, and the SuperStoreGas application 210 ccommunicate with gas application 204 a via links 214 a-214 c,respectively, and the Burger_Joint application 210 d and the Taco_Todayapplication 210 e communicate with food application 204 b via links 214d and 214 e, respectively. In various embodiments, each user application210 communicates with a single category-management application 204. Inother embodiments, one or more user applications 210 may communicatewith multiple category-management applications 204. For example, theSuperStoreGas application 210 c may communicate with the gas application204 a via link 214 c and optionally with the food application 204 b vialink 214 f.

In various embodiments, links 214 a-214 e may be pipes, sockets, messagebusses, or other communication channels, protocols, interfaces, etc. Invarious embodiments, the links 214 a-214 f between the respectivecategory-management applications 204 and the user applications 210 areestablished upon installation of the user application 210 onto the headunit 104 (or some other device). In some embodiments, the developer oran administrator of the user applications 210 selects which link 214 tocommunicate with a specific category-management application 204. Forexample, the developer of a gas-related user application 210 selects alink 214 to the gas application 204 a, whereas a developer of afood-related user application 210 selects a link 214 to the foodapplication 204 b. In some other embodiments, the user of the head unit104 is enabled to select the links 214 between the user applications 210and the category-management applications 204, such as via a graphicaluser interface. This functionality allows the user to dynamically changewith which user applications 210 each category-management application204 interacts. In other cases, the system may automatically select thelink 214, which can be based on information in the software package ofthe user application 210. In some embodiments, the user applications 210may not run as distinct processes but may be modules, such as sharedlibraries, scripts, or web services, that are linked to acategory-management application 204 or otherwise loaded at runtime.

As mentioned above, the user may interact with the user applications 210via the navigation application 202 or some other interface 220. As oneexample, a user can touch a soft button being displayed by thenavigation application 202 to access user-application content. Forexample, the navigation application 202 may present a “gas” button toenable a user to retrieve content from gas user applications 210.Continuing with this example, the navigation application 202 sends arequest to the gas application 204 a for the location of gas stationswithin a certain range of the current location of the vehicle. In thisexample, the range is a ten-mile radius with the current location of thevehicle at roughly the center of the radius. In various embodiments, therequest includes GPS coordinates or other location information withrespect to the vehicle. The gas application 204 a sends a request toeach of the Gas_Station_ABC application 210 a, the Gas_To_Go application210 b, and the SuperStoreGas application 210 c via links 214 a-214 c toobtain information regarding gas stations within the ten-mile radius ofthe vehicle's current location—although such a request may be sent toone or more other applications based on user preferences or activityhistory.

The Gas_Station_ABC application 210 a, the Gas_To_Go application 210 b,and the SuperStoreGas application 210 c execute in the background tofulfill the request, which, in some embodiments, may includecommunicating with one or more remote servers 124. In response toobtaining the requested information, the Gas_Station_ABC application 210a, the Gas_To_Go application 210 b, and the SuperStoreGas application210 c provide the requested information to the gas application 204 a vialinks 214 a-214 c. In this example, the requested information may be GPScoordinates and a logo for the corresponding gas station. The gasapplication 204 a aggregates the received information and provides it tothe navigation application 202, where the navigation application 202modifies or augments a displayed map to include the gas-station logos atthe respective locations.

In another arrangement, a user may initiate a request directly through acategory-management application 204, as opposed to launching it throughthe navigation application 202. For example, the user may first selectthe gas application 204 a, which can retrieve and aggregate theappropriate location information from the Gas_Station_ABC application210 a, the Gas_To_Go application 210 b, and the SuperStoreGasapplication 210 c. In turn, the gas application 204 a can share thiscontent with the navigation application 202, which can cause the logosto be presented on its user interface, as described above. Moreover, thegas application 204 a can discard content that may not be useful, beforesharing it with the navigation application 202. For example, thelocation of the closest gas station affiliated with the Gas_Station_ABCapplication 210 a may be on the outer boundary of the range (or radius)set by the vehicle's current location, and the vehicle is presentlymoving away from that location. In this case, the gas application 204 acould filter out this content, preventing its display via the navigationapplication 202.

Although the above examples discuss the category-management application204 as accessing nearest store-location information from the userapplications 210, embodiments are not so limited. In other embodiments,a user application 210 may provide information specific to the user. Forexample, when the user puts the vehicle into park, the navigationapplication 202 may provide location information to the gas application204 a and the food application 204 b. The gas application 204 a and thefood application 204 b can provide an instruction to the respective userapplications 210 requesting nearest store information. When the userapplications 210 respond with the nearest store locations, thecategory-management applications 204 can determine if a nearest storelocation matches the current location of the vehicle.

For this example, assume the location received from the Gas_Station_ABCapplication 210 a matches the current location of the vehicle, whichindicates that the vehicle is at a particular Gas_Station_ABC station.In response, the gas application 204 a can request additionalinformation from the Gas_Station_ABC application 210 a for thatparticular station. In this example, the Gas_Station_ABC application 210a may respond with certain content, such as gas prices, number of pumps,coupons, a rewards account number, current rewards points, etc. The gasapplication 204 a then presents the received content to a user, such asvia the navigation application 202 or some other interface of the headunit 104 or the other interfaces 220. In one non-limiting example, thegas application 204 a may display a coupon or other content for thatparticular station or output audio content via a speaker indicating acurrently available pump number and the current rewards balance for thatstation.

In some other embodiments, the category-management applications 204 canprovide other information to the user applications 210, so that the userapplications 210 can perform other actions. For example, thecategory-management applications can obtain a currently entereddestination, route, or estimated time of arrival to one or more of theuser applications 210. In at least one embodiment, each user application210 registers with one or more of the category-management applications210 and notifies the category-management application 210 of theinformation that that user application 210 is to receive. In this way, auser application 210 can provide additional information to the userbased on where the user is going. For example, if the user enters adestination of Hardware_Store_MNO into the navigation application. Thenavigation application can provide this information to acategory-management application, which can then forward the informationto a user Hardware_Store_MNO application. The Hardware_Store_MNOapplication can then respond with a coupon or hours of operation priorto the user arriving at Hardware_Store_MNO. This information can also bemade available to a companion application running on the mobile device,allowing a user to see the coupon in the car but be able to use itinside the store.

As another example, the user may interact with the category-managementapplications 204 via other interfaces 220, such as via a voice-activatedinterface. In one example scenario, a user of the head unit 104 mayspeak verbal commands that include food ordering instructions, such as“give me a biggie with a side of wedges.” The other interfaces 220utilizes voice-recognition techniques to obtain the text of the user'sinstructions. These instructions are then provided to the gasapplication 204 a and the food application 204 b. The gas application204 a sends the instructions to the Gas_Station_ABC application 210 a,the Gas_To_Go application 210 b, and the SuperStoreGas application 210 cand the food application 204 b sends the instructions to theBurger_Joint application 210 d and the Taco_Today application 210 e. Ifany of the user applications 210 recognize the instructions, then theycan respond to the corresponding category-management application 204indicating that the instructions are received and acknowledged.

In this example, the Burger_Joint application 210 d may recognize theinstructions as a request to pre-order a “Biggie Meal” with a side orderof french fries. The Burger_Joint application 210 d can send anacknowledgement request back to the food application 204 b, which canoutput a visible confirmation request via the navigation application 202or some other interface of the head unit 104 or an audible confirmationrequest via the other interfaces 220. If the user acknowledges therequest, the food application 204 b responds to the Burger_Jointapplication 210 d with the acknowledgement. The Burger_Joint application210 d can then place the order by communicating with the remote server124.

In some embodiments, the category-management applications 204 mayinclude additional functionality that bypasses or does not utilize auser application 210. For example, the food application 204 b mayinclude functionality to enable the head unit users to order food fromlocal “mom and pop” restaurants that do not have a user application. Inanother arrangement, a category-management application 204 may beconfigured to process the user requests and determine which userapplication 210 should receive the request. This alternative may reducethe number of signal exchanges within the system. In either case, thecategory-management applications 204 and the user applications 210 maybe configured to rely on local or remote ML models for processing theuser requests, or such functionality may be embedded within them.

As yet another example, one of the category-management applications 204may be a safety-management application (not illustrated). This safetyapplication may communicate with the remote server 124 to provide orobtain various safety information. For example, the safety-managementapplication may receive an amber alert from the remote server 124. Inresponse, the safety-management application may display or audiblypresent the alert to the user. Likewise, the safety managementapplication may communicate with one or more accessories on the vehicleto obtain additional information. For example, the safety-managementapplication may collect images from a forward-facing camera. Thesafety-management application can then analyze the images forlicense-plate numbers of nearby vehicles to compare against a targetlicense-plate number provided in the amber alert. If there is a match,the safety-management application obtains the current location of thevehicle from the navigation application 202 and provides it to theremote server 124. In some embodiments, the presence of thissafety-management application may be completely invisible to the user,with no visual or audio output indicating that it is continuouslyworking in the background.

In various embodiments, the mobile device 114 may also store and executeuser applications 230. The user applications 230 are similar to the userapplications 210 on the head unit 104. In some embodiments, the userapplications 230 on the mobile device 114 may include some of the sameuser applications 210 on the head unit 104. In other embodiments, theuser applications 230 on the mobile device 114 may include differentuser applications than the head unit 104. In this illustration, themobile device 114 includes a Gas XYZ application 230 a and aGeneralStoreapplication 230 b, which are separate and different from theuser applications 210 on the head unit 104.

The category-management applications 204 access and communicate with theuser applications 230 on the mobile device 114 similar to what isdescribed above for communicating with the user applications 210 on thehead unit 104 to obtain and select content to present to the user viathe navigation application 202. The use of such user applications 230 onthe mobile device 114 enables the head unit 104 to perform embodimentsdescribed herein without having the head unit 104 download and storeuser applications 210 on the head unit 104, which can save computingresources, as well as the time it would take a user select such userapplications for downloading onto the head unit 104.

As an option, the user applications 230 may be projected from the mobiledevice 114 to the head unit 104, enabling the user to interact with themvia the head unit 104. Any category-management applications installed onthe mobile device 114 may also be projected to the head unit 104. Theinteractions described above may also apply to this configuration,although at least some of the processing may occur on the mobile device114.

The operation of certain aspects of the disclosure will now be describedwith respect to FIGS. 3 and 4. In at least one of various embodiments,processes 300 and 400 described in conjunction with FIGS. 3 and 4,respectively, may be implemented by or executed on one or more computingdevices, such as head unit 104. These processes are not necessarilylimited to the chronological orders shown here and may be executedwithout adhering to all the steps described here or with steps that arebeyond those in the diagrams. To be clear, processes 300 and 400 aremerely examples of flows that may be applicable to or adopt theprinciples described above.

Process 300 begins, after a start block, at block 302, where the headunit stores one or more category-management applications and userapplications. In various embodiments, the category-managementapplications are pre-installed on the head unit, such as at the time ofmanufacture. One or more of the user applications may also bepre-installed on the head unit, or they may be downloaded to the headunit by the user, such as via a cellular network connection to a serverhosting an application store or via a mobile device of the user. Ofcourse, many other configurations may apply, too, including installationof the category-management applications and user applications on othercomputing devices.

Process 300 proceeds to block 304, where the category-managementapplication receives a request to interact with one of the userapplications. In some embodiments, to trigger this interaction, anavigation application receives the request from a user of the headunit, such as via the user activating a button on a graphical userinterface, and provides it to the category-management application. Inother embodiments, the category-management application receives therequest directly from the user or from another input interface, such asan audio interface that captures a voice command provided by the user.In yet other embodiments, the request may be from a user application.For example, a safety application may receive an alert from a remoteserver and send a request to the category-management application for thecategory-management application to obtain information from otheraccessories of the vehicle. In some embodiments, the request may be fromanother accessory of the vehicle, such as from a vehicle computer whenthe vehicle is put into park.

In some embodiments, the request may specifically identify the userapplication. For example, if the navigation application is presenting amap to the user with icons for restaurants and the user activates anicon for Taco_Today, the navigation application provides a request tothe category-management application for information from the Taco_Todayuser application.

In other embodiments, the request may indicate a desire for content orinformation without identifying a specific user application. Continuingthe previous example, if the user activates a button for food in general(whether through the navigation application or directly through thecategory-management application), the category-management applicationmay identify a nearest restaurant associated with one of the stored userapplications and select that user application to process a request forcurrent operating hours. As another example, if the navigationapplication is presenting a map without icons for restaurants and theuser activates the food button, the category-management application canidentify and select a user application associated with food to process arequest the nearest location.

Process 300 continues to block 306, where the category-managementapplication provides the request to the user application correspondingto the request. As mentioned herein, this request is for some type ofcontent, which may include coordinates or an address for a nearest storelocation, hours of operation, coupons, daily information, rewardsprogram information, automatic ordering information, or otherinformation.

The user application then executes in the background to fulfill therequest. In some embodiments, the user application queries a database,accesses a web service, or performs other actions to obtain therequested content.

For example, the user application may query a database stored locally onthe head unit, or it may communicate with a remote server, such asremote server 124 in FIG. 1, to obtain the requested content. In otherembodiments, the user application may send the request or associatedinformation to the remote server to fulfill the request. For example, ifthe request is to order a pizza from a particular pizzeria, the userapplication sends the order request to a remote server of the pizzeriato place the order. In some embodiments, the category-managementapplication and the user application may provide one or morecommunications back and forth to fulfill the request.

Process 300 proceeds next to block 308, where the category-managementapplication receives content from the user application in response tothe request. For example, with the example of ordering a pizza, thiscontent may be an acknowledgement that the pizza order was successfullysubmitted. In yet other embodiments, the content may be presented to theuser.

Process 300 continues next at block 310, where content associated withthe response information is presented to the user of the head unit. Invarious embodiments, the category-management application provides thecontent to a navigation application for presentation to the user. Inother embodiments, the category-management application itself employs agraphic user interface on the display device of the head unit to presentthe content to the user.

In some embodiments, the content is provided to the user via a banner ordisplay window on the display device of the head unit. In otherembodiments, one or more content items are selected based on theresponse and then presented to the user. For example, if the content isan address for a nearest restaurant, the category-management applicationmay provide the address to a navigation application, which selects anddisplays on a map a pin icon (i.e., the content) representing theaddress.

In various embodiments, the content is visual content that is displayedto the user via a display device on the head unit (or some other displaydevice within the vehicle). In other embodiments, the content is audiocontent that is output to the user via a speaker. In yet anotherembodiment, the content may be provided to a mobile device of the user,such that the content is viewable on the mobile device.

In some embodiments, the content that is presented to the user isprioritized or ranked when provided to the user. For example, the headunit may display a plurality of content in a prioritized list with thehighest priority content on top and the lowest priority content on thebottom. The priority of the content may be determined based on factorsassociated with the user of the vehicle, the current driving conditions,or some combination thereof.

In some embodiments, content obtained by one category-managementapplication may have a higher priority than content obtained by anothercategory-management application. In at least one embodiment, the usermay select or set the priority of the content from the differentcategory-management applications. For example, content from a gascategory-management application may be set to have a higher prioritythan content from a food category-management application.

In other embodiments, the current driving conditions may dictate thepriority of the content. For example, if there is currently heavytraffic, then food-related content may be given a lower priority, whiletraffic updates or route instructions may be given a higher priority.The current driving conditions may be determined based on the currentspeed of the vehicle compared to the posted speed limit (e.g., based ona look-up in a database for the vehicle's current location or using aforward-facing camera and image-recognition techniques to identifyspeed-limit signs), the current weather (e.g., based on tire slippage oruse of a weather application), the amount of braking being done by thedriver, vehicle-to-vehicle communications, use of LiDAR or otherproximity sensors, etc., or some combination thereof.

In some other embodiments, the priority of the content may be based on atimeline factor. For example, the highest priority content is associatedwith a factor the user or vehicle may experience first, and the secondhighest priority content is associated with a factor the user of vehiclemay experience next, and so on. As such, the lowest priority content isassociated with a factor the user or vehicle may experience at a maximumtime in the future. In this way, the content is presented to the user inan order in matching the expected chronology of the factors.

For example, assume the plurality of content includes an advertisementfor a restaurant 1 km away, a route instruction to turn left in 2 km, asafety recall notification, and a notification for an oil change that isdue in 500 km. In this example, the advertisement may have a highestpriority because it is likely the next factor that the user is going toexperience, followed by the route instruction, safety recall, and thenthe oil change notification. Once the vehicle passes the restaurant,then that content may be removed from the list, and the priorities ofthe other content can be adjusted. If the user continues to neglect thesafety recall, then its priority may be heightened as time goes on.Conversely, if the user delays the oil change, then its priority may belowered for a threshold amount of time and possibly increased after thisperiod expires.

The prioritized content can include the content obtained by thecategory-management applications, maintenance notifications, incomingphone calls or other communication messages, radio-related information(e.g., radio station, song title, and artist), advertisements, safetyinformation, etc. The different types of content may be assigned apriority by the user or an administrator or automatically by the system.These priorities may change over time based on the current drivingconditions, the user's preferences (e.g., if the user quickly dismissesa maintenance notification but follows an advertisement to arestaurant), or other factors.

In at least one embodiment, the priority changes may be based on acurrent distraction profile for the driver. For example, if the driveris distracted (e.g., in heavy traffic, during poor weather conditions,with other people in the vehicle, etc.), safety-related content may begiven a higher priority in comparison to that of advertisements. In thisway, content that has a priority that exceeds a threshold value for thecurrent distraction profile is presented to the user. As the currentdistraction profile changes, the presentation threshold may change, andlower priority content may be presented to the user. After block 310,process 300 terminates or otherwise returns to a calling process toperform other actions.

Although process 300 describes employing a single category-managementapplication and selecting a single user application, embodiments are notso limited. Rather, in some embodiments, one or more of a plurality ofcategory-management may interact with one or more user applications,which is discussed in more detail below in conjunction with FIG. 4.

FIG. 4 illustrates a logical flow diagram generally showing oneembodiment of an alternative process for utilizing multiplecategory-management applications to interact with multiple userapplications to present content to a user in accordance with embodimentsdescribed herein.

Process 400 begins, after a start block, at block 402, where a pluralityof category-management applications, a plurality of user applications,and a navigation application are stored on a head unit or some otherdevice. In various embodiments, block 402 employs embodiments of block302 in FIG. 3 to store the applications on the head unit or otherdevice.

Process 400 proceeds to block 404, where a request to interact with oneor more user applications is received. In various embodiments, block 404employs embodiments of block 304 in FIG. 3 to receive a request tointeract with a user application.

Process 400 continues at block 406, where one or morecategory-management applications are selected based on the request. Asdiscussed above, the request may itself identify a particular userapplication. Accordingly, the category-management applications thatinteract with that particular user application are selected. In otherembodiments, the request may itself identify a user application categoryor a particular category-management application. For example, if therequest is food, then the corresponding category-management foodapplication is selected.

In various embodiments, if the request is input via a navigationapplication, the navigation application may select thecategory-management applications. In other embodiments, the navigationapplication may provide the request to another application, such as anadministrator application that manages the category-managementapplications, to select the category-management applications. As anotheroption, the user may directly select the category-managementapplications.

Process 400 proceeds next to block 408, where the selectedcategory-management applications select at least some of the userapplications based on the request. In some embodiments, only one userapplication is selected. In other embodiments, multiple (but not all)user applications are selected. In yet other embodiments, all the userapplications are selected.

The selected user applications may be identified in the request orselected by the category-management applications. For example, if therequest is related to food, the food category-management application canselect user applications associated with food that it can interact with(e.g., via links 214 or via mobile device 114 in FIG. 2). In someembodiments, a category-management application maintains a datastructure to identify which user applications to select for whichrequests.

Process 400 continues next at block 410, where the selectedcategory-management applications provide the request to the selecteduser applications. In various embodiments, block 410 employs embodimentsof block 306 to provide the request to the selected user applications.

Process 400 proceeds to block 412, where the selectedcategory-management applications receive content from the selected userapplications in response to the request. In various embodiments, block412 may perform embodiments of block 308 for the category-managementapplications to receive the responses from the user applications,although multiple category-management applications may be receivingresponses from multiple user applications.

Process 400 continues at block 414, where the selectedcategory-management applications select content associated with theresponses for presentation to the user. In some embodiments, theselected category-management application selects content for theresponses from the selected user applications. In other embodiments, theselected category-management applications select content for a subset ofthe responses. In one example, the category-management gas applicationmay select content for the closest single gas station to present to theuser, even though it may have received content from five different usergas applications. Similarly, as another example, the location of theclosest gas station that is in the user's preconfigured list ofpreferred gas stations may be presented.

In various embodiments, a subset of the selected category-managementapplications may select content. For example, each selectedcategory-management application may receive nearest-store locations fromeach user application, but only the category-management application thatidentifies the single closest store to the vehicle may select thecontent to present to the user.

In some embodiments, the category-management applications coordinate theselection of the content together. In other embodiments, thecategory-management applications select content separately from eachother. In at least one such embodiment, the navigation application orsome other administrative application can aggregate the selected contentand determine what content to present to the user.

Process 400 proceeds next to block 416, where the content is presentedto the user. In various embodiments, block 416 performs embodiments ofblock 310 in FIG. 3 to present the content to a user of the head unit.In some embodiments, content from multiple user applications isconcurrently presented to the user. After block 416, process 400terminates or returns to a calling process to perform other actions.

Although process 300 in FIG. 3 and process 400 in FIG. 4 describe theuser applications as being stored on and executed by the head unit,embodiments are not so limited. Rather, as discussed herein, one or moreof the user applications may be stored on and executed by a mobiledevice of the user (e.g., mobile device 114 in FIG. 2) or some otherdevice, whether onboard the vehicle or remote to it. In theseembodiments, the category-management application utilizes a networkinterface to communicate with the user applications on the mobile deviceor other device.

FIG. 5 shows a system diagram that describes one implementation ofcomputing systems for implementing embodiments described herein. (Othersystems may also apply to the concepts presented above.) System 500includes head unit 104 and optionally, a mobile device 114 or one ormore remote servers 124.

The head unit 104 is a computing device that can perform functionalitydescribed herein for managing and aggregating results from userapplications to select content to display to a user of the head unit104. One or more special-purpose computing systems may be used toimplement the head unit 104. Accordingly, various embodiments describedherein may be implemented in software, hardware, firmware, or in somecombination thereof. The head unit 104 includes memory 504, one or moreprocessors 522, display 524, input/output (I/O) interfaces 526, othercomputer-readable media 528, network interface 530, and other components532.

Processor 522 includes one or more processing devices that executecomputer instructions to perform actions, including at least someembodiments described herein. In various embodiments, the processor 522may include one or more central processing units (CPUs), programmablelogic, or other processing circuitry.

Memory 504 may include one or more various types of non-volatile and/orvolatile storage technologies. Examples of memory 504 include flashmemory, hard disk drives, optical drives, solid-state drives, varioustypes of random-access memory (RAM), various types of read-only memory(ROM), other computer-readable storage media (also referred to asprocessor-readable storage media), or other memory technologies, or anycombination thereof. Memory 504 may be utilized to store information,including computer-readable instructions that are utilized by processor522 to perform actions, including at least some embodiments describedherein.

Memory 504 may have stored thereon various modules, such as a navigationapplication 202, one or more category-management applications 204, andone or more user applications 210. The navigation application 202provides functionality to present a map or other content to a user ofthe head unit 104, such as via display 524, other components 532, orinput/output interfaces 116, 126 in FIG. 1. Each category-managementapplication 204 provides functionality to communicate with one or moreuser applications 210, or user applications 230 on the mobile device114, to request content, aggregate responses, select content, andcoordinate the presentation of the content to the user, such as via thenavigation application 202. A user application 210 can be an executableprogram developed for a particular store, service, product, business,shop, station, etc. In some embodiments, the user applications 210request associated content from another computing device, such as remoteservers 124.

Memory 504 may also store other programs 518 and other content 520.Other programs 518 may include operating systems, user applications, orother computer programs. Content 520 may include visual, audio, ortactile content to provide to the user, which may or may not beaccessible to the user applications 210.

Display 524 is a display device capable of rendering content to a user.The display 524 may be a liquid-crystal display, light-emitting diode,or other type of display device and may include a touch sensitive screencapable of receiving inputs from a user's hand, stylus, or other object.

I/O interfaces 526 may include interfaces for various other input oroutput devices, such as audio interfaces, other video interfaces, USBinterfaces, physical buttons, keyboards, or the like.

Other computer-readable media 528 may include other types of stationaryor removable computer-readable media, such as removable flash drives,external hard drives, or the like.

Network interfaces 530 are configured to communicate with othercomputing devices, such as the mobile device 114 or the remote servers124, via a communication network 534. Network interfaces 530 includetransmitters and receivers (not illustrated) to send and receive data asdescribed herein. The communication network 534 may include thecommunication network 122 or the mobile device communication network 120of FIG. 1.

The mobile device 114 is a computing device that is separate from thehead unit 104, such as a smart phone, tablet computer, laptop computer,etc. One or more special-purpose computing systems may be used toimplement the mobile device 114. Accordingly, various embodimentsdescribed herein may be implemented in software, hardware, firmware, orin some combination thereof.

Briefly, the mobile device 114 includes a memory 554 and other computingcomponents 562. The memory 554 may include one or more various types ofnon-volatile and/or volatile storage technologies to store informationand computer-readable instructions, similar to memory 504. The memory554 may store one or more user applications 230. The user applications230 are similar to the user applications 210 on the head unit 104 andare accessible to the category-management applications 204 on the headunit 104. The memory 554 may also store other programs and content.

The other computing components 562 include one or more processors, I/Ointerfaces, network interface, and other computing components andresources, which are known to those skilled in the art and are notdiscussed here for brevity.

The remote servers 124 include one or more computing devices that areremote from the head unit 104. These remote servers 124 may be hostdevices, backend devices, or other servers that provide content orapplication support to the user applications 210 or 230. One or morespecial-purpose computing systems may be used to implement each remoteserver 124. Accordingly, various embodiments described herein may beimplemented in software, hardware, firmware, or in some combinationthereof.

Briefly, each remote server 124 includes a memory 578 and othercomputing components 582. The memory 578 may include one or more varioustypes of non-volatile and/or volatile storage technologies to storeinformation and computer-readable instructions, similar to memory 504.The memory 578 may store user application content 580, which can beprovided to the head unit 104 or the mobile device 114 upon request froma user application 210 or 230, respectively. The memory 578 may alsostore other programs and content. The other computing components 582include one or more processors, I/O interfaces, network interface, andother computing components and resources, which are known to thoseskilled in the art and are not discussed here for brevity.

The various embodiments described above can be combined to providefurther embodiments. These and other changes can be made to theembodiments in light of the above-detailed description. In general, inthe following claims, the terms used should not be construed to limitthe claims to the specific embodiments disclosed in the specificationand the claims but should be construed to include all possibleembodiments along with the full scope of equivalents to which suchclaims are entitled. Accordingly, the claims are not limited by thedisclosure.

1. A head unit of a vehicle, comprising: a memory that is configured tostore computer instructions, a first plurality of user applications, asecond plurality of user applications, a first category-managementapplication configured to communicate with the first plurality of userapplications, and a second category-management application configured tocommunicate with the second plurality of user applications; an outputinterface that is configured to present content to a user of thevehicle; one or more processors that are configured to execute thecomputer instructions to: employ the first category-managementapplication to request content from a first subset of the firstplurality of user applications based on a request for content; employthe second category-management application to request content from asecond subset of the second plurality of user applications based on therequest; receive, by the first category-management application and fromthe first subset of user applications, a first plurality of content;receive, by the second category-management application and from thesecond subset of user applications, a second plurality of content;select, by the first category-management application, a first subset ofcontent from the first plurality of content; select, by the secondcategory-management application, a second subset of content from thesecond plurality of content; aggregate the first subset of content withthe second subset of content into aggregated content based on therequest; and present the aggregated content via the output interface. 2.The head unit of claim 1, wherein the processor is configured to executefurther computer instructions to: select the first category-managementapplication and the second category-management application from aplurality of category-management applications based on the request. 3.The head unit of claim 1, wherein the processor is configured to employthe first category-management application to request content from thefirst subset of user applications by executing further computerinstructions to: provide, by the first category-management application,the request to the first subset of user applications.
 4. The head unitof claim 1, wherein the processor is configured to employ the firstcategory-management application to request content from the first subsetof user applications by executing further computer instructions to:receive, at the first category-management application, a currentlocation of the vehicle; and provide, by the first category-managementapplication, the request and the current location to the first subset ofuser applications.
 5. The head unit of claim 1, wherein the processor isconfigured to employ the first category-management application torequest content from the first subset of user applications by executingfurther computer instructions to: receive, at the firstcategory-management application, a route of travel for the vehicle froma navigation application; and provide, by the first category-managementapplication, the request and the route of travel to the first subset ofuser applications.
 6. The head unit of claim 1, wherein the processor isconfigured to employ the first category-management application torequest content from the first subset of user applications by executingfurther computer instructions to: provide an instruction to the firstsubset of user applications to cause the first subset of userapplications to execute commands to fulfill the request without directuser interaction with the first subset of user applications.
 7. The headunit of claim 1, wherein the processor is configured to employ the firstcategory-management application to request content from the first subsetof user applications by executing further computer instructions to:execute the first subset of user applications without the user selectinga dedicated application icon.
 8. The head unit of claim 1, wherein theprocessor is configured to employ the first category-managementapplication to request content from the first subset of userapplications by executing further computer instructions to: execute thefirst subset of user applications without the first subset of userapplications taking over a display of the head unit.
 9. The head unit ofclaim 1, wherein the processor is configured to aggregate the firstsubset of content with the second subset of content by executing furthercomputer instructions to: provide, by the first category-managementapplication, the first subset of content to a navigation application;provide, by the second category-management application, the secondsubset of content to the navigation application; and employ thenavigation application to aggregate the first subset of content with thesecond subset of content into the aggregated content.
 10. The head unitof claim 1, wherein the processor is configured to aggregate the firstsubset of content with the second subset of content by executing furthercomputer instructions to: prioritize the first subset of content and thesecond subset of content based on a current distraction profile for adriver of the vehicle.
 11. The head unit of claim 1, wherein theprocessor is configured to aggregate the first subset of content withthe second subset of content by executing further computer instructionsto: prioritize the first subset of content and the second subset ofcontent based on a timeline factor associated with an expected nextevent.
 12. The head unit of claim 1, wherein the first plurality of userapplications and the second plurality of user applications areconfigured as background processes to execute without direct interactionwith the user of the vehicle.
 13. The head unit of claim 1, wherein thefirst plurality of user applications and the second plurality of userapplications are configured as background processes to execute withoutdirect interaction with the user of the vehicle.
 14. The head unit ofclaim 1, wherein the processor is configured to present the aggregatedcontent by executing further computer instructions to: generate audiorelated to the aggregated content; and output the audio to the user viaan audio interface.
 15. A method to provide content to a user of avehicle, comprising: receiving a request from the user for content;interacting, by a first category-management application, with a firstsubset of a first plurality of user applications to fulfill the request;interacting, by a second category-management application, with a secondsubset of a second plurality of user applications to fulfill therequest; receiving, by the first category-management application andfrom at least one of the first subset of user applications, firstcontent in response to fulfillment of the request by the at least one ofthe first subset of user applications; receiving, by the secondcategory-management application and from at least one of the secondsubset of user applications, second content in response to fulfillmentof the request by the at least one of the second subset of userapplications; coordinating, by the first category-management applicationand the second category-management application, aggregation of the firstcontent and the second content to generate aggregated content based onthe request; and presenting the aggregated content to the user.
 16. Themethod of claim 15, further comprising: selecting the firstcategory-management application and the second category-managementapplication from a plurality of category-management applications basedon the request.
 17. The method of claim 15, wherein interacting with thefirst category-management application to fulfill the request furthercomprises: providing, by the first category-management application, therequest to the first subset of user applications.
 18. The method ofclaim 15, wherein interacting with the first category-managementapplication to fulfill the request further comprises: receiving, at thefirst category-management application, a current location of thevehicle; and providing, by the first category-management application,the request and the current location to the first subset of userapplications.
 19. The method of claim 15, wherein interacting with thefirst category-management application to fulfill the request furthercomprises: receiving, at the first category-management application, aroute of travel for the vehicle from a navigation application; andproviding, by the first category-management application, the request andthe route of travel to the first subset of user applications.
 20. Anon-transitory computer-readable storage medium having stored thereoninstructions that, when executed by a processor, cause the processor toperform actions, the actions comprising: employing a firstcategory-management application to obtain first content from a firstplurality of user applications based on a request for content; employinga second category-management application to obtain second content from asecond plurality of user applications based on the request; employingthe first category-management application to select a first subset ofcontent from the first content; employing the second category-managementapplication to select a second subset of content from the secondcontent; aggregating the first subset of content with the second subsetof content into aggregated content based on the request; and presentingthe aggregated content to a user.